package a.b.mvc6.controller;

import jakarta.servlet.annotation.MultipartConfig;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;

@RestController
@MultipartConfig
public class FileUploadController {

    /**
     * 单文件上传
     * @param file MultipartFile
     * @return String
     */
    @PostMapping("/upload")
    public String upload (@RequestParam("file") MultipartFile file) throws IOException {

        // 在这里进行真实的文件处理操作，如保存文件到磁盘等
        String originalFilename = file.getOriginalFilename();
        file.transferTo(Path.of("C:/Tmp/file/" + originalFilename));
        return "文件上传成功，文件名： " + originalFilename;
    }

    /**
     * 多文件上传
     * @param files MultipartFile[]
     * @return String
     */
    @PostMapping("/uploads")
    public String uploads (@RequestParam("files")MultipartFile[] files) throws IOException {

        List<String> strings = new ArrayList<>();
        for (MultipartFile file : files) {
            // 在这里进行真实的文件处理操作，如保存文件到磁盘等
            String originalFilename = file.getOriginalFilename();
            file.transferTo(Path.of("C:/Tmp/file/" + originalFilename));
            strings.add("文件上传成功，文件名： " + originalFilename);
        }
        return strings.toString();
    }
}
